﻿namespace BlamanticUI.Components;

/// <summary>
/// Represents a group of <see cref="Button"/> components and layout them properly.
/// </summary>
[CssClass("buttons")]
public class ButtonGroup : BlazorParentComponentBase<ButtonGroup>,IHasChildContent, IHasUIComponent, IHasVertical, IHasSpan, IHasAttatched
{
    /// <summary>
    /// Initializes a new instance of the <see cref="ButtonGroup"/> class.
    /// </summary>
    public ButtonGroup()
    {
    }
    /// <summary>
    /// Gets or sets a value indicating whether this layout is vertical.
    /// </summary>
    /// <value>
    ///   <c>true</c> if vertical; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Vertical { get; set; }
    /// <summary>
    /// Gets or sets a value indicating whether this group of buttons only show icon.
    /// </summary>
    [Parameter] [CssClass("icon")] public bool IconOnly { get; set; }
    /// <summary>
    /// Gets or sets the span of column.
    /// </summary>
    [Parameter] public SpanSize? Span { get; set; }
    /// <summary>
    /// Gets or sets a value indicating whether attach to another.
    /// </summary>
    /// <value>
    ///   <c>true</c> if attached; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Attached { get; set; }
    /// <summary>
    /// Gets or sets the attach position in vertical.
    /// </summary>
    [Parameter] public VerticalPosition? AttachedVertical { get; set; }
    /// <summary>
    /// Gets or sets the UI content.
    /// </summary>
    [Parameter]public RenderFragment? ChildContent { get; set; }
}
